@echo off
chcp 65001 >nul
title 完全重置模拟位置
color 0E

echo.
echo ========================================
echo    完全重置模拟位置设置
echo ========================================
echo.

echo 📋 诊断清单：
echo.
echo 虽然系统显示mock provider已设置，但应用获取不到
echo 可能原因：
echo 1. Mock location被频繁添加/删除（日志中看到很多次）
echo 2. 系统缓存了真实位置
echo 3. 手机厂商的特殊限制
echo 4. 应用使用了特殊的定位API
echo.

pause

echo.
echo ========================================
echo 第1步：完全停止模拟定位应用
echo ========================================
echo.

adb shell am force-stop com.example.munidingwei
echo ✓ 已停止

timeout /t 2 >nul

echo.
echo ========================================
echo 第2步：清除系统位置缓存
echo ========================================
echo.

echo 重启位置服务...
adb shell "su -c 'setprop ctl.restart location'" 2>nul

if errorlevel 1 (
    echo ⚠ 无ROOT权限，跳过
) else (
    echo ✓ 已重启
    timeout /t 3 >nul
)

echo.
echo ========================================
echo 第3步：查看手机信息
echo ========================================
echo.

echo 手机品牌和型号：
adb shell getprop ro.product.manufacturer
adb shell getprop ro.product.model

echo.
echo Android版本：
adb shell getprop ro.build.version.release

echo.
echo SDK版本：
adb shell getprop ro.build.version.sdk

echo.
pause

echo.
echo ========================================
echo 第4步：停止所有可能干扰的应用
echo ========================================
echo.

echo 停止系统定位服务相关应用...
adb shell am force-stop com.xiaomi.aicr 2>nul
adb shell am force-stop com.miui.securitycenter 2>nul
adb shell am force-stop com.huawei.systemmanager 2>nul
adb shell am force-stop com.coloros.safecenter 2>nul
adb shell am force-stop com.samsung.android.lool 2>nul

echo.
echo 停止所有地图应用...
adb shell am force-stop com.baidu.BaiduMap
adb shell am force-stop com.autonavi.minimap
adb shell am force-stop com.google.android.apps.maps 2>nul

echo.
echo 停止社交应用...
adb shell am force-stop com.tencent.mm
adb shell am force-stop com.tencent.mobileqq 2>nul

echo ✓ 完成

echo.
echo ========================================
echo 第5步：重新授权
echo ========================================
echo.

adb shell appops set com.example.munidingwei android:mock_location allow
echo ✓ 权限已授予

echo.
echo 验证权限：
adb shell appops get com.example.munidingwei android:mock_location

echo.
pause

echo.
echo ========================================
echo 第6步：清除位置相关缓存
echo ========================================
echo.

echo 清除系统设置缓存...
adb shell pm clear com.android.settings 2>nul
if errorlevel 1 (
    echo ⚠ 无法清除系统设置缓存
) else (
    echo ✓ 已清除
)

echo.
echo ========================================
echo 第7步：检查GPS状态
echo ========================================
echo.

echo 当前GPS状态：
adb shell settings get secure location_providers_allowed

echo.
echo 当前定位模式：
adb shell settings get secure location_mode

echo.
pause

echo.
echo ========================================
echo 第8步：强制开启GPS
echo ========================================
echo.

echo 确保GPS已开启...
adb shell settings put secure location_providers_allowed gps,network

echo ✓ GPS已开启

echo.
echo ========================================
echo 第9步：重新启动模拟定位应用
echo ========================================
echo.

timeout /t 2 >nul
adb shell am start -n com.example.munidingwei/.MainActivity

echo ✓ 应用已启动

echo.
echo ========================================
echo 重要操作指南
echo ========================================
echo.
echo 请在手机上按照以下步骤操作：
echo.
echo 1. 在"模拟定位"应用中，点击地图设置位置
echo 2. 等待看到"获取地址中..."变为具体地址
echo 3. 确认应用显示正确的模拟位置
echo.
echo 完成后按任意键继续验证...
pause

echo.
echo ========================================
echo 第10步：验证系统状态
echo ========================================
echo.

echo 查看Mock Provider状态：
adb shell dumpsys location | findstr /C:"mock" /C:"Mock"

echo.
echo ========================================
echo 第11步：最终测试
echo ========================================
echo.

echo 现在请依次测试以下应用：
echo.
echo 测试1：系统设置中的位置
echo   - 设置 → 位置 → 查看当前位置
echo.
echo 测试2：微信位置分享
echo   - 微信 → 任意聊天 → "+" → "位置"
echo.
echo 测试3：如果有GPS Test应用
echo   - 打开查看坐标
echo.
echo ========================================
echo.

echo 如果还是不行，可能需要：
echo 1. 重启手机
echo 2. 检查手机品牌的特殊限制
echo 3. 尝试ROOT方案
echo.

pause

